// 1.引入
const Koa = require('koa');

// 2.实例
const app = new Koa();  // 实例化
const router = require('koa-router')(); // 路由
const bodyparser = require('koa-bodyparser');
const connect = require('../sql/index');

// 加密
const {cryptopwd} = require('../extend/helper');

// 3.接口
// 登录
router.post('/login',async ctx=>{
    let {name,pwd} = ctx.request.body;
    // 非空校验
    if(!name || !pwd){
        ctx.body = {
            code:3,
            message:'缺少参数'
        }
        return;
    }
    let res = await new Promise((resolve,reject)=>{
        connect.query(`select * from arrs where name='${name}'`,(err,data)=>{
            // console.log(err)
            if(err){
                reject(err)
            }else{
                resolve(data)
            }
        })
    })
    if(res.length === 0){
        ctx.body = {
            code:0,
            message:'登陆失败，没有该用户'
        }
    }else{
        if(pwd === res[0].pwd){
            ctx.body = {
                code:1,
                message:'登陆成功'
            }
        }else{
            ctx.body = {
                code:2,
                message:'密码输入错误'
            }
        }
    }
})

// 注册
router.post('/register',async ctx=>{
    let {name,pwd} = ctx.request.body;
    // 非空验证
    if(!name || !pwd){
        ctx.body = {
            code:3,
            message:'缺少参数'
        }
        return;
    }
    let res1 = await new Promise((resolve,reject)=>{
        connect.query(`select * from arrs where name='${name}'`,(err,data)=>{
            if(err){
                reject(err)
            }else{
                resolve(data)
            }
        })
    })
    // 如果注册中有该用户
    if(res1.length > 0){
        ctx.body = {
            code:4,
            message:'该用户名已经注册，请从新起个名字'
        }
    }else{
        let res = await new Promise((resolve,reject)=>{
            connect.query(`insert into arrs (name,pwd) values('${name}',${pwd})`,(err,data)=>{     
                if(err){
                    reject(err)
                }else{
                    resolve(data)
                }
            })
        })
        // console.log(res)
        if(res.affectedRows){
            ctx.body = {
                code:1,
                message:'注册成功'
            }
        }else{
            ctx.body = {
                code:0,
                message:'注册失败'
            }
        }
    }
    
})


// 中间件
app.use(bodyparser());  // 放在路由前面
app.use(router.routes());   // 挂载路由
app.use(router.allowedMethods());   // 设置status

// 4.监听
app.listen(3000,()=>{
    console.log('我执行了3000')
})
